package com.scau402.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.scau402.common.annotation.Excel;
import com.scau402.common.core.domain.BaseEntity;

/**
 * 租户信息对象 sys_tenant
 * 
 * @author ruoyi
 * @date 2023-06-27
 */
@Data
public class SysTenant extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
     * 审核（0-未审核 1-审核通过 2-审核未通过）
     */
    private String review;

    /**
     * 审核用户id
     */
    private Long reviewById;

    /**
     * 审核用户名
     */
    private String reviewByName;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /** 主键 */
    private Long tenantId;

    /** 租户编号 */
    @Excel(name = "租户编号")
    private String tenantCode;

    /** 租户公司名称 */
    @Excel(name = "租户公司名称")
    private String tenantName;

    /**
     * 租户来源（0-注册 1-营销）
     */
    private String tenantSource;

    /** 租户状态（0正常 1停用） */
    @Excel(name = "租户状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 注册来源ip地址
     */
    private String tenantRegisterIp;

    /** 手机号码 */
    @Excel(name = "注册手机号码")
    private String phonenumber;

    /**
     * 租户所在地
     */
    private String tenantLocation;

    /**
     * 套餐情况
     */
    private String tenantPackage;

    /**
     * 套餐到期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date tenantExpireDate;

    /**
     * 租户套餐总容量
     */
    private double tenantStorageSpaceTotal;

    /**
     * 已使用容量
     */
    private double tenantStorageSpaceUsed;

    /** 管理员用户主键 */
    @Excel(name = "管理员用户主键")
    private Long adminId;

    /** 租户邮箱 */
    @Excel(name = "租户邮箱")
    private String email;

    /** 联系地址 */
    @Excel(name = "联系地址")
    private String address;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /**
     * 租户联系人姓名
     */
    private String tenantContactPersonName;

    /**
     * 租户联系方式
     */
    private String tenantContactPersonPhone;

    /**
     * 租户地址定位
     */
    private String tenantLocationIp;

    /**
     * 租户经营场所照片
     */
    private String tenantImageUrl;

    /**
     * 跟进人用户主键
     */
    private Long salesPersonId;

    /**
     * 跟进人姓名
     */
    private String salesPersonName;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("tenantId", getTenantId())
            .append("tenantCode", getTenantCode())
            .append("tenantName", getTenantName())
            .append("adminId", getAdminId())
            .append("email", getEmail())
            .append("phonenumber", getPhonenumber())
            .append("address", getAddress())
            .append("remark", getRemark())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
